A frizzing algorithm is used to test software code by executing the code with various versions (mutations) of an input file and determining whether those versions of the input file cause the code to crash or to execute properly. Traditional fuzzing algorithms are parametrized by many parameters such as number of mutations, choosing locations for mutations, types of mutations etc., which are typically assigned random values.